package com.dzsw.dp.singleton;

/**
 * 静态内部类
 * 1. 线程安全：静态内部类的初始化是线程安全的，由 JVM 保证。
 * 2. 延迟加载：只有在第一次访问 getInstance() 方法时才会加载内部类并创建实例。
 * 3. 简洁高效：无需显式使用 synchronized 关键字，减少了代码复杂度。
 */
public class StaticInnerClassSingleton {

    private StaticInnerClassSingleton() {}

    private static class Holder {
        private static StaticInnerClassSingleton INSTANCE = new StaticInnerClassSingleton();
    }

    public static StaticInnerClassSingleton getInstance() {
        return Holder.INSTANCE;
    }

    public void doSomething() {
        System.out.println("static inner class doSomething");
    }
}
